home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / Kubuntu 8.10 / kubuntu-8.10-desktop-i386.iso / casper / filesystem.squashfs / usr / lib / pm-utils / sleep.d / 98smart-kernel-video < prev    next >
Text File  |  2008-10-15  |  2KB  |  82 lines

  1. #!/bin/sh
  2. #
  3. # Copyright 2008 Victor Lowther <victor.lowther@gmail.com>
  4. #
  5. # This program is free software; you can redistribute it and/or modify
  6. # it under the terms of version 2 of the GNU General Public License as
  7. # published by the Free Software Foundation.
  8.  
  9.  
  10. . "${PM_FUNCTIONS}"
  11.  
  12.  
  13. # Test to see if the kernel has a video driver that is smart enough to 
  14. # handle quirks without external assistance. If it is, remove the quirks.
  15. smart_kernel_nvidia()
  16. {
  17.     # despite the bad rep the nvidia driver has, it is miles better than 
  18.     # any other video driver when it comes to handling power managment and
  19.     # suspend/resume in a quirk-free manner.
  20.     [ -d /sys/module/nvidia ] || return 1
  21.     remove_parameters --quirk-dpms-on \
  22.         --quirk-dpms-suspend \
  23.     --quirk-s3-mode \
  24.         --quirk-s3-bios \
  25.     --quirk-vbe-post \
  26.     --quirk-vbe-post \
  27.     --quirk-vga-mode3 \
  28.     --quirk-vbemode-restore \
  29.     --quirk-vbestate-restore \
  30.     --quirk-reset-brightness \
  31.     --quirk-radeon-off
  32. }
  33.  
  34. smart_kernel_fglrx()
  35. {
  36.     # the ATI driver is pretty good about it, too.
  37.     [ -d /sys/module/fglrx ] || return 1
  38.     remove_parameters --quirk-dpms-on \
  39.         --quirk-dpms-suspend \
  40.     --quirk-s3-mode \
  41.         --quirk-s3-bios \
  42.     --quirk-vbe-post \
  43.     --quirk-vbe-post \
  44.     --quirk-vga-mode3 \
  45.     --quirk-vbemode-restore \
  46.     --quirk-vbestate-restore \
  47.     --quirk-reset-brightness \
  48.     --quirk-radeon-off
  49. }
  50.  
  51. smart_kernel_intel()
  52. {
  53.     # currently, intel kernel modesetting is not quite smart enough
  54.     # we still need acpi s3 kernel modesetting hooks, so don't remove those
  55.     # options if they were passed.
  56.     [ -d /sys/module/i915 ] || return 1
  57.     
  58.     local kernel_rev="$(uname -r |awk -F '[_-]' '{print $1}')"
  59.     [ "$kernel_rev" \> "2.6.26" -o "$kernel_rev" = "2.6.26" ] || return 1
  60.     remove_parameters --quirk-dpms-on \
  61.         --quirk-dpms-suspend \
  62.     --quirk-vbe-post \
  63.     --quirk-vbe-post \
  64.     --quirk-vga-mode3 \
  65.     --quirk-vbemode-restore \
  66.     --quirk-vbestate-restore \
  67.     --quirk-reset-brightness \
  68.     --quirk-radeon-off
  69. }
  70.  
  71. smart_kernel_video() 
  72. {
  73.         smart_kernel_nvidia || smart_kernel_fglrx || smart_kernel_intel || \
  74.     return $NA
  75. }
  76.  
  77. case $1 in
  78.      suspend|hibernate)
  79.     smart_kernel_video ;;
  80.      *) exit 0 ;;
  81. esac
  82.